
import { SpriteFrame } from "cc";
import { } from "../settings/const";
import { ResName, ResType, ResTypeGroup } from "../settings/const";
import { Bonus } from "./Bonus";
import ResManager from "../common/ResManager";

export class RombawIng {
    /**物品id */
    typeId: number
    /**物品数量 */
    num: number
    /**物品类别 */
    category: string
    /**物品名称/货号 */
    name: string
    /**当前物品是否可操作使用 */
    isOperationUse: boolean
    /**类别id */
    type: number
    /**物品id */
    id: number
    /**
   * 根据服务端的数据，来创建背包数据
   * @param arr 
   * @returns 
   */
    static createByRombawIngObj(arr): RombawIng[] {

        var list: RombawIng[] = []
        for (let key in arr) {
            let it = arr[key];
            let _type = this.GetResType(key)
            let _id = String(parseInt(key) - this.GetResType(key))
            console.log(key, _type, _id)
            if (_type <= 0) {
                continue;
            }

            it = {
                type: parseInt(_type),
                id: parseInt(_id),
                num: parseInt(it.num),
            };
            let rom = new RombawIng()
            rom.typeId = parseInt(key)
            rom.num = arr[key].num
            rom.category = ResName[_type]
            rom.name = Bonus.bonusArrayDesc(it, false)
            rom.type = parseInt(_type)
            rom.id = parseInt(_id)
            if (_type == ResType.Box || _type == ResType.Item) {
                rom.isOperationUse = true
            } else {
                rom.isOperationUse = false
            }

            list.push(rom)
        }
        list = list.filter(v => v.num != 0);
        return list
    }


    /**
* 从复合索引推导出资源类型(200以内视为独立索引)
* @param {*} val
*/
    static GetResType(val) {

        if (val < 200) {
            return val;
        }

        for (let tp of ResTypeGroup) {
            if (val > ResType[tp]) {
                return ResType[tp];
            }
        }
    }



    async getRombawIngImg(): Promise<SpriteFrame> {
        switch (this.type) {
            case 90000:
                // 礼包 
                return ResManager.instance.loadAssetByUrl<SpriteFrame>(`shopImg/${this.id}/spriteFrame`)
                break 
            case 80000:
                // 道具 
                return ResManager.instance.loadAssetByUrl<SpriteFrame>(`itemImg/${this.id}/spriteFrame`)
                break
            case 60000:
                // NFT 没有
                break
            case 50000:
                // 英雄 没有
                break
            case 40000:
                // 图腾
                return ResManager.instance.loadAssetByUrl<SpriteFrame>(`totemImg/${this.id}/spriteFrame`)
                break
            case 30000:
                // 英雄升阶材料 
                return await ResManager.instance.loadAssetByUrl<SpriteFrame>(`heroHead/${this.id}/spriteFrame`)
                break
            case 3000:
                // 自然资源 没有
                break
            case 2000:
                //时效 没有
                break
            case 1000:
                //士兵 没有
                break
            case 20:
                //VIP 没有
                break
            case 9:
                //体力 
                return ResManager.instance.loadAssetByUrl<SpriteFrame>(`shopImg/1001/spriteFrame`)
                break
            case 8:
                //升星魂石 没有
                break
            case 7:
                //升级魂石 
                return ResManager.instance.loadAssetByUrl<SpriteFrame>(`shopImg/7/spriteFrame`)
                break
            case 6:
                //荣誉值 没有
                break
            case 5:
                //钻石 没有
                break
            case 2:
                //金币 
                return ResManager.instance.loadAssetByUrl<SpriteFrame>(`shopImg/1002/spriteFrame`)
                break
            case 1:
                //元宝
                return ResManager.instance.loadAssetByUrl<SpriteFrame>(`shopImg/0/spriteFrame`)
                break

        }

        return null
    }


}

